Conversation
- Added Codex as a supported IDE in the MCP configuration UI - Removed Augment (duplicate of Cursor configuration) - Positioned Codex between Gemini and Cursor in the tab order - Added platform-specific configuration support for Windows vs Linux/macOS - Includes step-by-step instructions for installing mcp-remote and configuring Codex - Shows appropriate TOML configuration based on detected platform 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
WalkthroughAdded a new Codex IDE configuration to the MCP config UI, including platform-specific generation (Windows vs non-Windows), guidance, and tab updates. Removed the Augment configuration. Updated types to replace "augment" with "codex" and extended the ideConfigurations entry type with an optional platformSpecific flag. Changes
Sequence Diagram(s)sequenceDiagram
participant U as User
participant UI as MCP Config UI
participant CFG as ideConfigurations
participant OS as Platform Detector
U->>UI: Select "Codex" tab
UI->>CFG: Load Codex config entry
Note over CFG: platformSpecific = true
UI->>OS: Detect platform (Windows vs non-Windows)
OS-->>UI: Platform info
UI->>CFG: Call configGenerator(config, platform)
CFG-->>UI: Platform-tailored config text
UI-->>U: Render steps, npm install highlight, path notes, and config with platform label
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
archon-ui-main/src/features/mcp/types/mcp.ts (1)
33-39: Type drift: IdeConfiguration lacks platformSpecific; UI defines it inline.To avoid divergence, define a UI-facing type in the feature types and reuse it.
Apply in this file:
export interface IdeConfiguration { ide: SupportedIDE; title: string; steps: string[]; config: string; supportsOneClick?: boolean; } + +// UI definition for MCP IDE configuration blocks +export interface IdeConfigUiDefinition { + title: string; + steps: string[]; + configGenerator: (config: McpServerConfig) => string; + supportsOneClick?: boolean; + platformSpecific?: boolean; +}Then update McpConfigSection.tsx to use IdeConfigUiDefinition (see suggested diff there).
archon-ui-main/src/features/mcp/components/McpConfigSection.tsx (2)
6-6: Centralize the config entry type; avoid inline shape.Import and use a shared IdeConfigUiDefinition type from the feature’s types to comply with the “types live under src/features/*/types” guideline.
-import type { McpServerConfig, McpServerStatus, SupportedIDE } from "../types"; +import type { McpServerConfig, McpServerStatus, SupportedIDE, IdeConfigUiDefinition } from "../types"; @@ -const ideConfigurations: Record< - SupportedIDE, - { - title: string; - steps: string[]; - configGenerator: (config: McpServerConfig) => string; - supportsOneClick?: boolean; - platformSpecific?: boolean; - } -> = { +const ideConfigurations: Record<SupportedIDE, IdeConfigUiDefinition> = {Also applies to: 15-24
148-156: Ensure --allow-http is passed for non‑HTTPS MCP endpoints (Codex/Cursor/Claude)mcp-remote requires an explicit --allow-http (or equivalent) for http:// MCP endpoints — add "--allow-http" to the Codex, Cursor, and Claude Code mcp-remote args or ensure those paths use HTTPS.
File: archon-ui-main/src/features/mcp/components/McpConfigSection.tsx — lines 148–156 and 173–177
🧹 Nitpick comments (3)
archon-ui-main/src/features/mcp/components/McpConfigSection.tsx (3)
71-83: Windows TOML example path is brittle.Hard-coding USERNAME and npm global path will fail for many setups. You already instruct users to run npm root -g; reflect that with a clearer placeholder.
- 'C:/Users/YOUR_USERNAME/AppData/Roaming/npm/node_modules/mcp-remote/dist/proxy.js', + '<REPLACE_WITH: (npm root -g)/mcp-remote/dist/proxy.js>',If we want, we can render a short hint below the config showing the resolved npm root for typical Homebrew (
/opt/homebrew/...) and Node installer (/usr/local/...) cases.
325-328: Tone down transient product-state wording.“This setup is complex right now because Codex has some bugs with MCP currently.” can age poorly and sounds accusatory. Prefer neutral wording.
- according to your system. This setup is complex right now because Codex has some bugs with MCP currently. + according to your system. Codex’s MCP support is evolving; paths and setup may vary by platform.
335-342: Reuse platform helper for header label; avoid navigator directly.Consistent with earlier fix.
- {selectedIDE === "codex" && ( + {selectedIDE === "codex" && ( <span className="ml-2 text-xs text-yellow-600 dark:text-yellow-400"> - ({navigator.platform.toLowerCase().includes("win") ? "Windows" : "Linux/macOS"}) + ({isWindowsPlatform() ? "Windows" : "Linux/macOS"}) </span> )}(Add isWindowsPlatform as outlined above.)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
archon-ui-main/src/features/mcp/components/McpConfigSection.tsx(4 hunks)archon-ui-main/src/features/mcp/types/mcp.ts(1 hunks)
🧰 Additional context used
📓 Path-based instructions (5)
archon-ui-main/src/features/**/*.{ts,tsx}
📄 CodeRabbit inference engine (CLAUDE.md)
archon-ui-main/src/features/**/*.{ts,tsx}: Use TanStack Query for all data fetching (no prop drilling); use smart HTTP polling (no WebSockets)
Biome formatting in features: 120-character line length, double quotes, and trailing commas
Apply Tron-inspired glassmorphism styling with Tailwind for feature UIUse Biome in features: 120 character line length, double quotes, and trailing commas
Files:
archon-ui-main/src/features/mcp/types/mcp.tsarchon-ui-main/src/features/mcp/components/McpConfigSection.tsx
archon-ui-main/src/**/*.{ts,tsx}
📄 CodeRabbit inference engine (CLAUDE.md)
Disallow implicit any in TypeScript
archon-ui-main/src/**/*.{ts,tsx}: Frontend TypeScript must use strict mode with no implicit any
Use TanStack Query for all data fetching; avoid prop drilling
Use database values directly in the frontend; avoid mapping layers between BE and FE types
Files:
archon-ui-main/src/features/mcp/types/mcp.tsarchon-ui-main/src/features/mcp/components/McpConfigSection.tsx
archon-ui-main/src/features/*/types/**/*.{ts,tsx}
📄 CodeRabbit inference engine (CLAUDE.md)
Define feature-specific TypeScript types in the feature’s types directory
Define shared types under src/features/[feature]/types
Files:
archon-ui-main/src/features/mcp/types/mcp.ts
archon-ui-main/src/**/*.{ts,tsx,py}
📄 CodeRabbit inference engine (CLAUDE.md)
In code comments, avoid meta terms like SIMPLIFIED, ENHANCED, LEGACY, CHANGED, REMOVED; comment only on functionality and reasoning (do not mention beta/global rules)
Files:
archon-ui-main/src/features/mcp/types/mcp.tsarchon-ui-main/src/features/mcp/components/McpConfigSection.tsx
archon-ui-main/src/features/*/components/**/*.{ts,tsx}
📄 CodeRabbit inference engine (CLAUDE.md)
Place new UI components under the feature’s components directory
Place new UI components under src/features/[feature]/components
Files:
archon-ui-main/src/features/mcp/components/McpConfigSection.tsx
🧬 Code graph analysis (1)
archon-ui-main/src/features/mcp/components/McpConfigSection.tsx (2)
archon-ui-main/src/features/ui/primitives/tabs.tsx (3)
TabsList(9-18)TabsTrigger(22-86)TabsContent(90-102)archon-ui-main/src/features/ui/primitives/styles.ts (2)
cn(139-141)glassmorphism(12-100)
🔇 Additional comments (4)
archon-ui-main/src/features/mcp/components/McpConfigSection.tsx (3)
259-263: Tabs layout change LGTM.Grid col update and new Codex tab integrate cleanly.
274-289: Nice UX touch highlighting npm install.Inline code highlighting improves scannability for Codex steps.
291-299: Good macOS/Homebrew path note.This should reduce confusion for Apple Silicon setups.
archon-ui-main/src/features/mcp/types/mcp.ts (1)
31-31: Approve — Codex added; address leftover "Augment" usagesexport type SupportedIDE = "windsurf" | "cursor" | "claudecode" | "cline" | "kiro" | "codex" | "gemini";
- No "augment" literal in SupportedIDE, but occurrences remain:
- archon-ui-main/src/features/mcp/types/mcp.ts: client_type includes "Augment" (line ~17).
- archon-ui-main/src/features/mcp/components/McpClientList.tsx: icon map includes Augment (line ~18).
- Remove or normalize these usages (or confirm they intentionally differ from SupportedIDE) and ensure no code still expects SupportedIDE = "augment".
| codex: { | ||
| title: "Codex Configuration", | ||
| steps: [ | ||
| "Step 1: Install mcp-remote globally: npm install -g mcp-remote", | ||
| "Step 2: Add configuration to ~/.codex/config.toml", | ||
| "Step 3: Find your exact mcp-remote path by running: npm root -g", | ||
| "Step 4: Replace the path in the configuration with your actual path + /mcp-remote/dist/proxy.js", | ||
| ], | ||
| configGenerator: (config) => { | ||
| const isWindows = navigator.platform.toLowerCase().includes("win"); | ||
|
|
||
| if (isWindows) { | ||
| return `[mcp_servers.archon] | ||
| command = 'node' | ||
| args = [ | ||
| 'C:/Users/YOUR_USERNAME/AppData/Roaming/npm/node_modules/mcp-remote/dist/proxy.js', | ||
| 'http://${config.host}:${config.port}/mcp' | ||
| ] | ||
| env = { | ||
| APPDATA = 'C:\\Users\\YOUR_USERNAME\\AppData\\Roaming', | ||
| LOCALAPPDATA = 'C:\\Users\\YOUR_USERNAME\\AppData\\Local', | ||
| SystemRoot = 'C:\\WINDOWS', | ||
| COMSPEC = 'C:\\WINDOWS\\system32\\cmd.exe' | ||
| }`; | ||
| } else { | ||
| return `[mcp_servers.archon] | ||
| command = 'node' | ||
| args = [ | ||
| '/usr/local/lib/node_modules/mcp-remote/dist/proxy.js', | ||
| 'http://${config.host}:${config.port}/mcp' | ||
| ] | ||
| env = { }`; | ||
| } | ||
| }, | ||
| platformSpecific: true, | ||
| }, |
There was a problem hiding this comment.
Guard navigator usage and unify platform detection.
Direct navigator access can break under SSR/tests and detection is duplicated. Add a small helper and reuse it here.
Add once near the top (outside the component):
const isWindowsPlatform = (): boolean =>
typeof navigator !== "undefined" && /win/i.test(navigator.userAgent || navigator.platform || "");Then update this block:
- const isWindows = navigator.platform.toLowerCase().includes("win");
+ const isWindows = isWindowsPlatform();Also use isWindowsPlatform() where you render the platform label/note (see comments below).
🤖 Prompt for AI Agents
In archon-ui-main/src/features/mcp/components/McpConfigSection.tsx around lines
60 to 95, replace the direct navigator.platform usage with a guarded helper to
avoid SSR/test failures and centralize platform detection: add a top-level
isWindowsPlatform helper that checks typeof navigator !== "undefined" and tests
navigator.userAgent or navigator.platform for "win", then use
isWindowsPlatform() here (and wherever the component renders platform
labels/notes) instead of navigator.platform.toLowerCase().includes("win") so
detection is safe and unified across the file.
| {/* Platform-specific note for Codex */} | ||
| {selectedIDE === "codex" && ( | ||
| <div className={cn("p-3 rounded-lg", glassmorphism.background.yellow, glassmorphism.border.yellow)}> | ||
| <p className="text-sm text-yellow-700 dark:text-yellow-300"> | ||
| <span className="font-semibold">Platform Note:</span> The configuration below shows{" "} | ||
| {navigator.platform.toLowerCase().includes("win") ? "Windows" : "Linux/macOS"} format. Adjust paths | ||
| according to your system. This setup is complex right now because Codex has some bugs with MCP currently. | ||
| </p> | ||
| </div> | ||
| )} |
There was a problem hiding this comment.
glassmorphism.yellow is undefined — styles won’t apply.
styles.ts defines cyan/blue/purple/orange but not yellow. Use an existing color to avoid “undefined” classes.
- <div className={cn("p-3 rounded-lg", glassmorphism.background.yellow, glassmorphism.border.yellow)}>
+ <div className={cn("p-3 rounded-lg", glassmorphism.background.orange, glassmorphism.border.orange)}>Also replace navigator usage here with isWindowsPlatform():
- {navigator.platform.toLowerCase().includes("win") ? "Windows" : "Linux/macOS"} format.
+ {isWindowsPlatform() ? "Windows" : "Linux/macOS"} format.Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In archon-ui-main/src/features/mcp/components/McpConfigSection.tsx around lines
321 to 330, replace the undefined glassmorphism.yellow classes with an existing
color (for example glassmorphism.background.orange and
glassmorphism.border.orange) so the styling resolves, and replace the direct
navigator.platform usage with a call to isWindowsPlatform() (and ensure that
helper is imported/available) when choosing the displayed platform string and
the conditional rendering check.
* Add Codex MCP configuration instructions - Added Codex as a supported IDE in the MCP configuration UI - Removed Augment (duplicate of Cursor configuration) - Positioned Codex between Gemini and Cursor in the tab order - Added platform-specific configuration support for Windows vs Linux/macOS - Includes step-by-step instructions for installing mcp-remote and configuring Codex - Shows appropriate TOML configuration based on detected platform 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Finalizing Codex instructions --------- Co-authored-by: Claude <noreply@anthropic.com>
The Settings page "Active" count was always 0 for web workflows because they are fire-and-forget (lock released immediately after dispatch). Query the DB for workflows with status='running' instead. Co-authored-by: Thomas Ritter <thomas.ritter@crownpeak.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…oleam00#719) The Settings page "Active" count was always 0 for web workflows because they are fire-and-forget (lock released immediately after dispatch). Query the DB for workflows with status='running' instead. Co-authored-by: Thomas Ritter <thomas.ritter@crownpeak.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…oleam00#719) The Settings page "Active" count was always 0 for web workflows because they are fire-and-forget (lock released immediately after dispatch). Query the DB for workflows with status='running' instead. Co-authored-by: Thomas Ritter <thomas.ritter@crownpeak.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pull Request
Summary
Added instructions to the MCP tab in the Archon UI for connecting the Archon MCP server to Codex.
Changes Made
Type of Change
Affected Services
Testing
Checklist
Summary by CodeRabbit
New Features
Refactor